Generally described, users can utilize computers for a variety of purposes. In a typical computing environment, a user can access a variety of software application programs (“applications” or “programs”) to address a specific task and/or fulfill a particular goal. For example, an accountant might make regular and extensive use of a word processing program, an e-mail program, a spreadsheet program, and a personal information manager. In a graphical operating system environment, users can instantiate multiple programs at the same time, such that each program is represented as one or more graphical windows on the display area. For example, a computer may instantiate a word processing program and a spreadsheet program at the same time. Additionally, each program can in turn generate a graphical window for each file (e.g., document or spreadsheet) opened by a user.
Rather than having all the instantiated program windows present on the same part of a display screen, users can adjust the location of the graphical windows on the display area. For example, users can alter the locations of the graphical windows such that portions of multiple graphical windows are visible to the user at the same time. However, adjusting the location of graphical windows, especially across multiple monitors or large displays, can become difficult and time consuming as the number of open graphical windows increases and the number of possible configurations for the open graphical windows also increases. For example, a user may wish to view multiple graphical windows corresponding to spreadsheets and word processing while using the computer for business activities. Likewise, the same user may wish to view multiple graphical windows corresponding to Internet Web page browsers and e-mail communication tools for personal activities.
Some operating environments allow users to customize program layout that keeps a program at a particular location when it is instantiated. Such customization allows users to reduce constant arrangement of program windows. However, this approach does not provide advanced program location management that would allow programs to be grouped and managed. Other operating environments allow windows to be organized into “virtual desktops” that can be stored, recalled or otherwise manipulated. However, the virtual desktop approach requires windows to be strictly partitioned so that only a single pre-defined set of graphical window layouts is readily accessible at one time. Because the number of uses for a computer by a single user may change or because multiple users may be associated with a single computer, the single set virtual desktop approach can become inefficient.
Therefore, a need exists for a new and improved method for assisting users in maintaining arrangements of program windows in a large desktop environment in a way that improves the accessibility of programs relevant to a user's needs.